Because of the increasing need for faster network response time and convergence in computer networks, administrators often require the ability of individual network devices to quickly detect failures. Connectivity verification protocols, such as Bidirectional Forwarding Detection (BFD), may provide rapid failure detection times between devices, while maintaining low overhead. BFD verifies connectivity between two devices based on rapid transmission of BFD control packets between the two devices. Notably, BFD also provides a single, standardized method of link/device/protocol failure detection at any protocol layer and over any media. Generally, BFD sessions may be established between network devices or nodes (e.g., routers) in order to monitor connectivity of the nodes over a particular link between the nodes.
One problem with using connectivity verification protocols, such as BFD, is that it is difficult for a local network device to determine whether a detected failure due to a non-responsive remote network device is caused by a failure/unavailability of the connectivity verification protocol at the remote network device, or by a failure of the forwarding protocol/plane of the adjacency/link between the devices. A monitoring local network device has generally only been able to determine that it is unable to establish/maintain a connectivity verification protocol (BFD) session because it is not receiving control messages from the monitored remote network device. Declaring a link to a remote network device as functional (up) or failed (down) when it is not produces undesirable results in the network, such as improper traffic forwarding, etc., as will be understood by those skilled in the art.
For example, a routing protocol (e.g., BGP and IGP, etc.) of a local network device typically creates a BFD session with a remote network device once a routing adjacency is determined between those devices, e.g., after learning of the adjacency through routing exchange messages or after a failed link becomes functional again, etc. If the BFD session does not establish properly (e.g., if the remote network device does not respond to the local network device), the cause may be due to BFD not being configured (or yet operational) on the remote network device, or due to a forwarding protocol/plane failure, such as the Internet Protocol (IP) not functioning on the adjacency. Generally, because BFD does not know the reason for the inability to establish the session, no action is taken, and the routing adjacency remains in place (e.g., causing possible forwarding of traffic over the adjacency, which may or may not be functioning). There remains a need, therefore, for a technique that determines why a connectivity verification protocol (e.g., BFD) session is not functioning, e.g., such as due to a failure of the link/node, or just a problem with the connectivity verification protocol.